package com.lagou.testbatch;

import com.lagou.utils.DruidUtils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

/**
 * @Author wsl
 * @Date 2021/8/23 20:12
 * @Project_Name mysql
 */
public class BatchInsert {

    /**
     * 使用批处理,向表中添加 1万条数据
     * @param args
     */

    public static void main(String[] args) throws SQLException {

        //1.获取连接
        Connection con = DruidUtils.getConnection();

        //2.获取预处理对象
        String sql = "insert into testBatch(uname) values(?)";
        PreparedStatement ps = con.prepareStatement(sql);

        //3.创建for循环，来设置占位符参数
        for (int i=0; i<10000; i++){
            ps.setString(1,"小强" + i);
            //将SQL添加到批处理 列表
            ps.addBatch();
        }

        //6.添加时间戳，测试执行效率,开始时间
        long start = System.currentTimeMillis();

        //4.统一 批量执行, 批量插入操作
        ps.executeBatch();

        //结束时间
        long end = System.currentTimeMillis();
        System.out.println("插入10000条数据使用时间："+(end - start)+"毫秒!");

        //5.关闭资源
        DruidUtils.close(con,ps);
    }
}
